<?php
/**
 * 附加文件处理器
 *
 * @version $Id: IFileAppender.php 312 2008-04-23 16:29:38Z iwind $
 * @package util.io
 */
class IFileAppender extends IAbstractFileProcessor {
	/**
	 * Enter description here...
	 *
	 * @var IFile
	 */
	private $file;
	private $handler;
	
	/**
	 * 构造
	 *
	 * @param IFile $file 文件对象
	 */
	public function __construct(IFile $file) {
		$this->file = $file;
	}
	
	/**
	 * 附加内容
	 *
	 * @param string $string 需要附加的内容字符串
	 * @return boolean
	 */
	public function append($string) {
		$handler = $this->handler();
		if ($handler->isReady()) {
			return fwrite($handler->handler(), $string);
		}
		return false;
	}
	
	/**
	 * 取得文件句柄
	 *
	 * @return IFileHandler
	 */
	public function handler() {
		return parent::fileHandler($this->file, "ab+", IFileHandler::LOCK_EXCLUSIVE);
	}
}

?>